package com.xuecheng.content.service;

import com.xuecheng.base.exception.XueChengPlusException;
import com.xuecheng.content.model.dto.BindTeachplanMediaDto;
import com.xuecheng.content.model.dto.SaveTeachplanDto;
import com.xuecheng.content.model.dto.TeachplanDto;

import java.util.List;

/**
 * @author Mr.M
 * @version 1.0
 * @description 课程计划管理相关接口
 * @date 2023/2/14 12:10
 */
 public interface TeachplanService {
 /**
  * 根据课程id查询课程计划
  * @param courseId 课程计划
  * @return
  */
  public List<TeachplanDto> findTeachplanTree(Long courseId);

 /**
  * 新增/修改/保存课程计划 通过判断dto中是否有id主键判断是新增还是更新
  * @param saveTeachplanDto
  */
 public void saveTeachplan(SaveTeachplanDto saveTeachplanDto);

 /**
  * 删除章节信息
  * 要求:删除第一级别的章时要求章下边没有小节方可删除。
  *     删除第二级别的小节的同时需要将其它关联的视频信息也删除。
  *     删除课程计划需要传输课程计划的id。
  * @param id 课程计划的id
  */
 public void deleteTeachPlan(Long id);

 /**
  * @description 课程计划上下移动
  * @param teachplanId 课程计划id
  * @param moveStatus   是否是下移 Ture 代表下移 ,False 代表上移
  * @return void
  * @author: woldier
  * @date: 2023/3/7 22:29
  */
// void move(Long id,Boolean moveDown);
 public void move(Long teachplanId,Boolean moveStatus);

 /**
  * @description 教学计划绑定媒资
  * @param bindTeachplanMediaDto
  * @return com.xuecheng.content.model.po.TeachplanMedia
  * @author Mr.M
  * @date 2022/9/14 22:20
  */
 public void associationMedia(BindTeachplanMediaDto bindTeachplanMediaDto);
}
